package com.info.zhiduoduo.repository.entity.maker;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * <p>
 *  平台的委托人账号表, 签约主体企业支付宝, 比如: 智圣\明圣企业支付宝账户
 * </p>
 *
 * @author bob
 * @since 2021-07-06
 */
@Data
@Accessors(chain = true)
@TableName("zdd_maker_alipay_principal")
public class MakerAlipayPrincipal extends Model<MakerAlipayPrincipal> {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.INPUT)
    private Integer id;
    /**
     * 与之绑定的isv主体
     */
    @TableField("isv_id")
    private Integer isvId;
    /**
     * 是否是isv主体 0:否 1:是
     */
    private Integer isv;
    /**
     * 委托账号名称, 比如: 上海秀圣信息技术有限公司
     */
    private String name;
    /**
     * 用户签约的支付宝账号对应的支付宝唯一用户号。 以2088开头的16位纯数字组成。
     */
    @TableField("alipay_user_id")
    private String alipayUserId;
    /**
     * 	
代扣协议中标示用户的唯一签约号（确保在商户系统中唯一）。
     */
    @TableField("agreement_no")
    private String agreementNo;
    /**
     * 当前签约的协议场景。
     */
    @TableField("sign_scene")
    private String signScene;
    /**
     * 协议当前状态 1. TEMP：暂存，协议未生效过； 2. NORMAL：正常； 3. STOP：暂停
     */
    private String status;
    /**
     * 签约主体类型。
CARD:支付宝账号
CUSTOMER:支付宝用户
     */
    @TableField("pricipal_type")
    private String pricipalType;
    /**
     * 	
支付宝系统中用以唯一标识用户签约记录的编号。
     */
    @TableField("alipay_agreement_no")
    private String alipayAgreementNo;
    /**
     * 返回脱敏的支付宝账号，如需要返回不脱敏的支付宝用户账号，需要用户在签约页面上授权
     */
    @TableField("alipay_logon_id")
    private String alipayLogonId;
    /**
     * 	
支付宝代扣协议的实际签约时间，格式为yyyy-MM-dd HH:mm:ss。
     */
    @TableField("sign_time")
    private Date signTime;
    /**
     * 用户代扣协议的实际生效时间，格式为yyyy-MM-dd HH:mm:ss。
     */
    @TableField("valid_time")
    private Date validTime;
    /**
     * 开通的资金记账本id
     */
    @TableField("account_book_id")
    private String accountBookId;
    /**
     * 记账本的可用余额（非支付宝账户余额）
     */
    @TableField("available_amount")
    private BigDecimal availableAmount;
    /**
     *  平台冻结的余额（availableAmount - frozenAmount才是发单时能用的余额）
     */
    @TableField("frozen_amount")
    private BigDecimal frozenAmount;
    /**
     * 外卡卡号
     */
    @TableField("card_no")
    private String cardNo;
    /**
     * 外卡户名
     */
    @TableField("bank_acc_name")
    private String bankAccName;
    /**
     * 外卡支行
     */
    @TableField("card_branch")
    private String cardBranch;
    /**
     * 外卡开户行
     */
    @TableField("card_bank")
    private String cardBank;
    /**
     * 外卡开户地址
     */
    @TableField("card_location")
    private String cardLocation;
    /**
     * 外卡联行号
     */
    @TableField("card_deposit")
    private String cardDeposit;
    /**
     * 外卡状态
     */
    @TableField("account_book_status")
    private String accountBookStatus;
    /**
     * 企业公户账号
     */
    private String publicAcctNo;
    /**
     * 企业公户名称
     */
    private String publicAcctName;
    /**
     * 企业公户银行名
     */
    private String publicInstName;
    /**
     * 企业公户开户支行名，与联行号二选一
     */
    private String publicInstBranchName;
    /**
     * 企业公户联行号，与支行名二选一
     */
    private String publicBankCode;
    private Date createtime;
    private Date updatetime;


    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
